package org.javahispano.javacup.modelo;

import java.awt.Color;
import java.io.Serializable;

/**Clase usada intenamente, para almacenar los datos de los jugadores*/
class JugadorImpl implements JugadorDetalle, Serializable {

	private final String nombre;
	private final Color piel;
	private final Color pelo;
	private final int numero;
	private final double velocidad;
	private final double remate;
	private final double presicion;
	private final boolean portero;

	public JugadorImpl(JugadorDetalle det) {
		this.nombre = det.getNombre();
		this.numero = det.getNumero();
		this.piel = det.getColorPiel();
		this.pelo = det.getColorPelo();
		double vel = det.getVelocidad();
		double rem = det.getRemate();
		double pre = det.getPresicion();
		if (vel > 1) {
			vel = 1;
		}
		if (vel < 0) {
			vel = 0;
		}
		if (rem > 1) {
			rem = 1;
		}
		if (rem < 0) {
			rem = 0;
		}
		if (pre > 1) {
			pre = 1;
		}
		if (pre < 0) {
			pre = 0;
		}
		this.velocidad = vel;
		this.remate = rem;
		this.presicion = pre;
		this.portero = det.esPortero();
	}

	public JugadorImpl(String nombre, int numero, Color piel, Color pelo,
					double velocidad, double remate, double presicion, boolean portero) {
		this.nombre = nombre;
		this.numero = numero;
		this.piel = piel;
		this.pelo = pelo;
		if (velocidad > 1) {
			velocidad = 1;
		}
		if (velocidad < 0) {
			velocidad = 0;
		}
		if (remate > 1) {
			remate = 1;
		}
		if (remate < 0) {
			remate = 0;
		}
		if (presicion > 1) {
			presicion = 1;
		}
		if (presicion < 0) {
			presicion = 0;
		}
		this.velocidad = velocidad;
		this.remate = remate;
		this.presicion = presicion;
		this.portero = portero;
	}

	@Override
	public String getNombre() {
		return nombre;
	}

	@Override
	public Color getColorPiel() {
		return piel;
	}

	@Override
	public Color getColorPelo() {
		return pelo;
	}

	@Override
	public int getNumero() {
		return numero;
	}

	@Override
	public boolean esPortero() {
		return portero;
	}

	@Override
	public double getVelocidad() {
		return velocidad;
	}

	@Override
	public double getRemate() {
		return remate;
	}

	@Override
	public double getPresicion() {
		return presicion;
	}
}
